// 这里专门用来书写用户的API
import request from '@/utils/request'

// 用户登录信息的类型限制
export interface LoginUserInfoType {
    username: string,
    password: string
}

// 用户登录的返回值类型限制
export interface LoginResponseType {
    token: string
}

// 1- 用户登录
export const reqPostLoginAsync = (userInfo: LoginUserInfoType) => {
    return request.post<null, LoginResponseType>(`/admin/acl/index/login`, userInfo)
}

// 2- 用户退出登录
export const reqPostLoginOutAsync = () => {
    return request.post<null, null>(`/admin/acl/index/logout`)
}

// 返回的用户信息数据的类型限制
export interface ReturnUserInfoType {
    routes: string[],   // 路由权限控制
    buttons: string[],  // 按钮权限控制
    roles: string[],    // 角色权限控制
    name: string,       // 用户账号
    avatar: string      // 用户头像
}

// 3- 根据请求头的token 获取用户信息
export const reqGetUserInfoAsync = () => {
    return request.get<null, ReturnUserInfoType>(`/admin/acl/index/info`)
}